﻿namespace DesignModeConsole.行为型.模板模式;

/*
 * A类注册到一个函数F到B类中，A类在调用B类P函数的时候，B类反过来调用A类注册给他的F函数，这里的F函数就是回调函数，A调用B，
 * B反过来调用A，这种调用机制就叫做回调。
 * 
 */
/// <summary>
/// 回调处理  能起到和模板模式相同的作用
/// </summary>
public class AClass
{
    public void Main()
    {
        var bClass = new BClass();
        bClass.Process((str) =>
        {
            Console.WriteLine($"我是AClass中的Main  入参为：{str}");
        });
        Console.WriteLine("回调执行结束");
    }
}

public class BClass
{
    public void Process(Action<string> action)
    {
        Console.WriteLine("我是BClass");
        action.Invoke("BClass");
        Console.WriteLine("我是BClass");
    }
}